iT邦幫忙

2022 iThome 鐵人賽

DAY 2
1
自我挑戰組

laravel+vue 學習系列 第 2

Day2. 目錄結構

  • 分享至 

  • xImage
  •  

一、app 目錄
應用程式核心 Class 放置的主要目錄利用 PSR-4標準自動載入,裡面子目錄:

  1. Console
    • 目錄內可包含自訂義的 Artisan 指令(使用 make:command 產生自定義指令)
    • Kernel.php 控制台核心,可註冊自定義 Artisan 指令, 和已定義的排成任務

  1. Exceptions
    • 放置應用程式的異常處理程序
    • 有自定義的異常紀錄要呈現或記錄log,可修改在此目錄下的 Handler 類別

  1. Http
    • 放置 Controller, Middleware, Resource等處理用戶請求、過濾中介層、回傳內容調整 Class
    • Controllers 目錄, 放置控制器 Class, 處理油路由轉發的請求
    • Middleware 目錄, 放置中介層可在接收與回傳給用戶時做動作, e.g. 用戶身分檢查、過濾特殊關鍵字等
    • Resource 目錄, 可定義 API 回傳格式, 隱藏資料庫欄位

  1. Models
    • laravel 預設放置 model 位置, 使用者可以另外自訂

  1. Providers
    • 放置應用程式的服務提供者, 在應用程式啟動時會聯繫服務到容器、註冊事件者(Class 內主要有 register, boot 兩種方法)

  1. Events
    • 預設不存在, 使用 event:generate 或 make:event 指令後才會被建立
    • 目錄主要放置事件類別的 Class

  1. Jobs
    • 預設不存在, 使用 make:job 指令後會建立目錄
    • 目錄主要放置佇列(Queue)任務的 Class

  1. Listeners
    • 預設不存在, 使用 event:generate 或 make:listener 指令後才會被建立
    • 目錄內包含事件監聽器的 Class

  1. Mail
    • 預設不存在, 使用 make:mail 指令後才會被建立

  1. Notifications
    • 預設不存在, 使用 make:notification 指令後才會被建立
    • 包含應用程式傳送通知的 Class

  1. Policies
    • 預設不存在, 使用 make:policy 指令後才會被建立
    • 放置應用程式授權相關 Class

二、bootstrap

  • 放置啟動框架和設定自動載入
  • 包含一個 cache 目錄, 內有對優化應用程式所產生的檔案

三、config

  • 內容包含應用程式的配置設定檔 e.g. 預設資料的連線方式

四、databese

  • 包含 migrate、factory 和 seeders(資料庫遷移檔、假資料產生、將假資料寫入資料庫中的 Class)

五、public

  • 網站應用程式入口(像是 apache htdocs 目錄), 目錄內包含前端共用資源, 編譯好的 JS(VUE), CSS(SASS) 檔案

六、resources

  • 放置模板檔案(blade)
  • LESS, SASS, VUE 等原始未被打包的檔案
  • 系統語言包

七、routes

  • 放置應用程式路由定義檔
  • 預設包含 web.php(網站路由), api.php(API 路由), console.php(指令路由)

八、storage

  • 目錄包含編譯後的 Blade 模板、基於檔案的 session、檔案快取和其他框架生成的檔案

九、test

  • 測試應用程式相關檔案

十、vendor

  • Composer 安裝的相關模組

其他零星檔案

  1. editorconfig
    • laravel 5.5 以上才有
    • 提供 Laravel 的編寫標準給 IDE 編輯器
  2. .env, .env.example
    • 應用程式環境變量
  3. .gitignore, .gitattributes
    • git 組態檔
  4. artisan
    • 執行 Artisan 命令檔案
  5. composer.json, composer.lock
    • Composer 組態檔
  6. package.json
    • npm 組態檔
  7. phpunit.xml
    • PHPUnit 組態檔, PHPUnit 為 Laravel 內建的測試工具
  8. readme.md
    • 提供 Laravel 應用程式的簡介, 檔案格式為 Markdown
  9. server.php
    • 後備伺服器, 試著讓功能較差的伺服器也可以預覽 Laravel 應用程式
  10. webpack.mix.js
    • Mix 組態檔

上一篇
Day1. laravel 環境建置
下一篇
Day3. 路由 Route
系列文
laravel+vue 學習32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言